草庐IT

Java Parallel Streams 关闭线程

全部标签

java - 在 Java 中同步 2 个线程的更简单方法?

我不想确定主线程中的某些代码会在辅助线程执行某些代码之后执行。这是我得到的:finalObjectlock=newObject();finalThreadt=newThread(newRunnable(){publicvoidrun(){synchronized(lock){System.out.println("qwerty");lock.notify();}}});synchronized(lock){t.start();lock.wait();}System.out.println("absolutelysure,qwertyisabove");这是正确的解决方案吗?有没有更短的

java - 使用 System.out.print 与 println 的多线程问题

我有以下线程,它每200毫秒打印一个点:publicclassProgress{privatestaticbooleanthreadCanRun=true;privatestaticThreadprogressThread=newThread(newRunnable(){publicvoidrun(){while(threadCanRun){System.out.print('.');System.out.flush();try{progressThread.sleep(200);}catch(InterruptedExceptionex){}}}});publicstaticvoid

java - c3p0 连接池不关闭连接

我有一个Usingc3p00.9.1.2、hibernate3.2.1.ga和spring2.5.5。问题是数据库连接不会自行关闭。这是日志:[22mars201212:29:56,091]DEBUGcom.mchange.v2.resourcepool.BasicResourcePool["http-apr-8080"-exec-4]acquiretest--poolisalreadymaxedout.[managed:20;max:20][22mars201212:29:56,091]DEBUGcom.mchange.v2.resourcepool.BasicResourcePoo

java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/commons/codec/DecoderException 中的异常

我尝试通过Solrj查询Solr这是我的代码publicclassReadFromSolr{publicstaticvoidmain(String[]args)throwsMalformedURLException,SolrServerException{Stringurl="http://localhost:8983/solr";try{SolrServerserver=newCommonsHttpSolrServer(url);ModifiableSolrParamsparams=newModifiableSolrParams();params.set("qt","/select"

java - 确保在抛出异常时关闭对象

我正在创建JDBCStatement和ResultSet。Findbugs正确地指出,如果抛出异常,我不会关闭这些。所以现在我有:Statementstmt=null;ResultSetres=null;try{stmt=...res=stmt.executeQuery(...);...}finally{try{if(res!=null)res.close();//(只是我有更多的结果集和preparedstatements等等open...所以我的finally嵌套比较深)必须有更好的方法来确保关闭大量结果集吗?(另外:在Symbian中,他们从不让destructors/close

java - 执行两个线程,一个等待另一个,而主线程继续

如何启动两个线程,其中线程1首先执行,线程2在线程1结束时启动,而主方法线程可以继续其工作而无需锁定其他两个线程?我已经尝试过join()但是它需要从必须等待另一个的线程调用,没有办法做像thread2.join(thread1);这样的事情。如果我在main()中调用连接,我因此有效地停止了主线程的执行,而不仅仅是线程2。因此我尝试使用ExecutorService但同样的问题。importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurre

java - ExecutorService 中如何限制线程?

我使用ExecutorService在不同的线程中运行许多任务。有时,过多的Runnable实例在线程池中等待可能会导致OutOfMemory问题。我尝试编写一个阻塞作业执行器来解决它。有没有官方的解决方案?例如:BlockingJobExecutorexecutor=newBlockingJobExecutor(3);for(inti=0;i这是BlockingJobExecutor类:importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.conc

java - 多线程如何破坏Hashmap的内部结构

在Java8fortheReallyImpatient中,Horstmann写道:IfmultiplethreadsmodifyaplainHashMap,theycandestroytheinternalstructure.Someofthelinksmaygomissing,orevengoincircles,renderingthedatastructureunusable.(Section6.2.1)我能理解不同步的并发访问会破坏我的数据。如果两个线程更新相同的值,一个可以覆盖另一个。但是为什么以及如何破坏内部存储器结构? 最佳答案

java - Java 中的多线程 JPEG 图像处理

我在多线程环境中借助图像IO在Java中读取JPEG图像时遇到问题。仅当多个线程尝试读取图像时才会出现问题。症状因不正确的配置文件加载到异常而异:java.awt.color.CMMException:LCMSerror13:Couldn'tlinktheprofiles无论我如何读取图像,通过ImageIO.read或使用ImageReader。源数据(图像)是完全隔离且不可变的。这个问题可能与:https://bugs.openjdk.java.net/browse/JDK-8041429和https://bugs.openjdk.java.net/browse/JDK-80322

java - 使用 JavaFX 任务正确执行多线程和线程池

我有一个选项供用户从FileChooser提交多个文件以供某些代码处理。结果将是读取文件的IO,然后是对存储数据的实际繁重计算。允许用户选择多个文件,并且由于文件处理不依赖于任何其他选择的文件,这让我的生活更容易处理线程。此外,用户需要有一个按钮列表,每个按钮对应一个要取消的任务,以及一个“全部取消”按钮。因此,我必须考虑选择性或集体终止一个或所有任务的能力。最后一个要求是,我不会让用户打开大量文件来阻塞系统。因此,我设计了一个线程数有限的线程池(假设我将任意数量的线程限制在4个)。我不确定如何正确地设置这一切。我有我需要做的事情的逻辑,但使用正确的类是我遇到的问题。我检查过thisr